package fileNotes;

import java.io.*;
import java.util.List;

public class fileDemo {

    /**
     * 遍列当前目录下所有文件，包括子目录；
     *
     * @param dir
     * @param fileNames
     */
    public void findFileList(File dir, List<String> fileNames) {
        // 判断是否存在目录
        if (!dir.exists() || !dir.isDirectory()) {
            return;
        }
        // 读取目录下的所有目录文件信息
        String[] files = dir.list();
        // 循环，添加文件名或回调自身
        for (int i = 0; i < files.length; i++) {
            File file = new File(dir, files[i]);
            // 如果文件
            if (file.isFile()) {
                // 添加文件全路径名
                fileNames.add(dir + "\\" + file.getName());
            } else {
                // 如果是目录
                // 回调自身继续查询
                findFileList(file, fileNames);
            }
        }
    }

    /**
     * 文件的读取和写入，文本文件逐行读取逐行写入
     *
     * @param filePath
     * @param filePathCopy
     * @throws IOException
     */
    public void readFileWriter(String filePath, String filePathCopy) {
        try (
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        new FileInputStream(filePath)));
                FileWriter fw = new FileWriter(filePathCopy, false);
        ) {
            for (String line = br.readLine(); line != null; line = br.readLine()) {
                fw.write(line);
                fw.write("\r\n");
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
